function func_find_status_approve_level(currentStatus, toStatus, storeType, tax_rate, vnpk_qty) {
    var StatusApproveLevel = {
        A_CMO: {
            from: ['A'],
            to: ['O', 'S', 'C'],
            approve: ['DMM', 'GMM', 'CMO'],
        },
        OSCD_CMO: {
            from: ['O', 'S', 'C', 'D'],
            to: ['A'],
            approve: ['DMM', 'GMM', 'CMO'],
        },
        OS_GMM: {
            from: ['O'],
            to: ['S'],
            approve: ['DMM', 'GMM', 'CMO', 'MO'],
        },
        SO_GMM: {
            from: ['S'],
            to: ['O'],
            approve: ['DMM', 'GMM', 'CMO', 'MO'],
        },
        CD_GMM: {
            from: ['C', 'D'],
            to: ['S', 'O'],
            approve: ['DMM', 'GMM'],
        },
        OS_PRICE_TEAM: {
            from: ['O', 'S'],
            to: ['C'],
            approve: ['DMM', 'GMM'],
        },
        TAX: {
            from: [],
            to: [],
            approve: ['DMM', '税务组'],
        },
        VNPK: {
            from: [],
            to: [],
            approve: ['DMM', '补货组', '陈列组'],
        },
        STATUS_DEFAULT: {
            from: [],
            to: [],
            approve: ['BUYER', 'DMM'],
        },
        MO_C_AOS: {
            from: ['C'],
            to: ['A', 'O', 'S'],
            approve: ['MO'],
        },
        MO_D_O: {
            from: ['D'],
            to: ['O'],
            approve: ['MO'],
        },
    }
    var approveList = []
    if (!isNull(toStatus)) {
        if (isNull(currentStatus) || isNull(toStatus)) {
            return approveList;
        } else if (isNull(currentStatus) && !isNull(toStatus)) {
            approveList = StatusApproveLevel.STATUS_DEFAULT.approve
            return approveList;
        }
        for (var index in StatusApproveLevel) {
            if (StatusApproveLevel[index].from.indexOf(currentStatus) != -1 && StatusApproveLevel[index].to.indexOf(toStatus) != -1) {
                if (!isNull(StatusApproveLevel[index].approve)) {
                    StatusApproveLevel[index].approve.forEach(function (approve) {
                        approveList.push(approve)
                    })
                }
            }
        }
        if (isNull(approveList)) {
            approveList = StatusApproveLevel.STATUS_DEFAULT.approve
        }
        if (storeType == 2) {
            approveList = listToSplice(approveList, 'CMO')
        }
    } else if (!isNull(tax_rate)) {
        StatusApproveLevel.TAX.approve.forEach(function (approve) {
            approveList.push(approve)
        })
    } else if (!isNull(vnpk_qty)) {
        StatusApproveLevel.VNPK.approve.forEach(function (approve) {
            approveList.push(approve)
        })
    }

    return approveList;
}
